home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 2
/
Merciful - Disc 2.iso
/
software
/
m
/
muiv3.1cracked.lha
/
MUI
/
Developer
/
Oberon
/
examples
/
RBMainWindowClass.mod
< prev
next >
Wrap
Text File
|
1995-11-19
|
4KB
|
140 lines
(*------------------------------------------
:Module. RBMainWindowClass.mod
:Author. Albert Weinert [awn]
:Address. Moltkestr. 83 , 50859 Köln, Germany
:EMail. a.weinert@darkness.gun.de
:Phone. +49-221-480800
:Revision. R.0
:Date. 10-Apr-1995
:Copyright. Albert Weinert
:Language. Oberon-2
:Translator. AmigaOberon V3.20
:Contents. <Kurzbeschreibung>
:Imports. <Importiertes, Name/ShortCut des Autors>
:Remarks. <Was Du willst, evtl. Usage>
:Bugs. <Bekannte Fehler>
:Usage. <Angaben zur Anwendung>
:RCSId. $Id$
:History. .0 [awn] 10-Apr-1995 : Erstellt
--------------------------------------------*)
MODULE RBMainWindowClass;
IMPORT
e := Exec,
I := Intuition,
rc := RootClass,
m := Mui,
ms := MuiSimple,
mw := MUIWindow,
el := EditListClass,
u := Utility,
y := SYSTEM;
TYPE
Class = UNTRACED POINTER TO ClassDesc;
ClassDesc = RECORD( mw.ClassDesc );
END;
pClose = STRUCT( msg : I.Msg );
level : LONGINT;
END;
CONST
tagBase = u.user + (64*65536);
mClose = tagBase +1 ;
VAR
class -: I.IClassPtr;
PROCEDURE ( VAR c: ClassDesc ) New*( VAR msg : I.OpSet ):e.APTR;
VAR win : e.APTR;
group, commandGroup, parameterGroup, resultGroup : m.Object;
tags : u.Tags2;
BEGIN
commandGroup := I.NewObject( el.class, NIL,
m.aFrame, m.vFrameGroup,
m.aFrameTitle, y.ADR( "Befehle" ),
el.aNewText, y.ADR("_Neu"),
el.aRemoveText, y.ADR("_Entfernen"),
el.aNewMenuText, y.ADR("Neu"),
el.aRemoveMenuText, y.ADR("Entfernen"),
el.aHelpMenuText, y.ADR("Hilfe"),
m.aShortHelp, y.ADR( "List der Befehle die der ARexx-Port versteht" ),
u.end );
parameterGroup := I.NewObject( el.class, NIL,
m.aFrame, m.vFrameGroup,
m.aFrameTitle, y.ADR( "Parameter" ),
el.aNewText, y.ADR("Ne_u"),
el.aRemoveText, y.ADR("Ent_fernen"),
el.aUpText, y.ADR("_Hoch"),
el.aDownText, y.ADR("_Runter"),
el.aNewMenuText, y.ADR("Neu"),
el.aRemoveMenuText, y.ADR("Entfernen"),
el.aUpMenuText, y.ADR("Hoch"),
el.aDownMenuText, y.ADR("Runter"),
el.aHelpMenuText, y.ADR("Hilfe"),
m.aShortHelp, y.ADR( "Parameter des ausgewählten ARexx-Befehls" ),
u.end );
resultGroup := I.NewObject( el.class, NIL,
m.aFrame, m.vFrameGroup,
m.aFrameTitle, y.ADR( "Resultate" ),
el.aNewText, y.ADR("Neu"),
el.aRemoveText, y.ADR("Entfernen"),
el.aUpText, y.ADR("H_och"),
el.aDownText, y.ADR("Run_ter"),
el.aNewMenuText, y.ADR("Neu"),
el.aRemoveMenuText, y.ADR("Entfernen"),
el.aUpMenuText, y.ADR("Hoch"),
el.aDownMenuText, y.ADR("Runter"),
el.aHelpMenuText, y.ADR("Hilfe"),
m.aShortHelp, y.ADR( "Rückgabewerte des ausgewählten ARexx-Befehls" ),
u.end );
group := ms.HGroup( m.aGroupChild, commandGroup,
m.aGroupChild, parameterGroup,
m.aGroupChild, resultGroup,
u.end );
tags[1].tag := u.more;
tags[1].data := msg.attrList;
tags[0].tag := m.aWindowRootObject;
tags[0].data := group;
msg.attrList := y.ADR(tags);
win := c.New^( msg );
IF win # NIL THEN
c.CopyClass( win );
m.DoMethod( win, m.mNotify, m.aWindowCloseRequest, e.true, win, 2, mClose, 0 );
END;
RETURN win;
END New;
PROCEDURE ( VAR c : ClassDesc ) Close*( VAR msg : pClose ): e.APTR;
VAR app : m.Object;
BEGIN
ms.Get( c.object, m.aWindowApplication, app );
m.DoMethod( app, m.mApplicationReturnID, m.vApplicationReturnIDQuit );
RETURN NIL;
END Close;
PROCEDURE Dispatch * ( cl : I.IClassPtr; obj : I.ObjectPtr; msg : I.MsgPtr ):e.APTR;
VAR c : Class;
BEGIN
IF msg.methodID # I.new THEN
c := rc.BoopsiToObj( cl, obj )(Class);
END;
CASE msg.methodID OF
| mClose : RETURN c.Close( msg^(pClose ) );
ELSE
RETURN mw.Dispatch( cl, obj, msg );
END;
END Dispatch;
BEGIN
class := rc.InitPrivFromClass( mw.class, Dispatch, SIZE( ClassDesc ), y.TYPEDESC( ClassDesc ) );
IF class = NIL THEN HALT(205) END;
CLOSE
IF class # NIL THEN IF I.FreeClass( class ) THEN END END;
END RBMainWindowClass.